# 什么是字符串
# name = "Razey" #字符串的本质还是序列
# name1 = "R" #一个字符串还是作为一个字符串来使用
#
# name2 = 'Razey' #单引号
# name3 = "Razey" #双引号
# name4 = '''Razey''' #三引号
#
# name5 = "I'm Razey" #外双内单
# name6 = """Razey said: "I'm Razey" """ #最外三、外双、内单
# name7 = 'I\'m Razey' #\转义字符 转变后面本身的含义
# print(name6)
# print(name7)
#
# print("Hello World!\nHello World!\nHello World! ") #\n换行符

# print("今天吃什么"*3) #字符串乘以一个数字，表示重复这个字符串的次数

# Rx_category = "物品\t\t单价\t\t数量\t\t总价"  #制表符\对齐
# Rx_detail = "苹果\t\t5\t\t10\t\t50"
# print(Rx_category)
# print(Rx_detail)

# # 字符串的索引与切片
# name = "Razey xdea"
# print(name[0]) #索引从0开始
# print(name[1])
# print(name[2])
# print(name[3])
# print(name[4])
# print(name[5])
# print(name[6])
# print(name[7])
#
# print(name[-1]) #从后往前数   空格也算，
# print(name[-2])
# print(name[-3])
# print(name[-4])

# name = "Razey xdea"
# result = name[-10:-5]  #从后往前数，-5不取
# print(result)
#
# name = "Razey xdea"
# result = name[0:5] #从0开始，到5不取
# print(result)

# name = "Razey xdea"
# name2 = "问道阁：胡歌"
#print((len(name2))) #len()函数，计算字符串的长度
# result = name2[2:3:4] #从2开始，到3不取，步长为4
# print(result)

# index()函数，查找字符串中某个字符的索引即查找指定值的首次出现的位置
# text = "Hello world！" #一段示范的字符串
# the_index = text.index("world") #查找字符串中某个字符的索引
# print(the_index) #输出索引值 6

# find()函数，查找字符串中某个字符的索引即查找指定值的首次出现的位置  更推荐这个
# text = "Hello world！" #一段示范的字符串
# the_index = text.find("world") #查找字符串中某个字符的索引
# print(the_index) #输出索引值 6

# find() 和index()的区别
# text = "Hello world！" #一段示范的字符串
# the_index = text.find("Python") # 不存在的字符串则返回-1  #更加推荐find()方法
# the_index = text.index("Python") # 不存在的字符串则报错
# print(the_index) #返回-1


"""
字符串的查找方法
"""
from ctypes import HRESULT

# text = "一行程序长度是没有限制的，但是为了可读性更强，通常将一行比较长的程序分为多行。这是，我们可以使用\行连接符，把它放在行结束的地方。Python解释器仍然将它们解释为同一行。"
# text2 = "221641515615151"
# result = text.startswith("但是为了可读性更强") #判断字符串是否以指定字符串开头
# result = text.endswith("Python解释器仍然将它们解释为同一行。") #判断字符串是否以指定字符串结尾
# result = rfind("一行") #查找字符串中某个字符的索引，从右往左查找
# result = text.count("一行") #统计字符串中某个字符出现的次数
# result = text2.isalnum() #判断字符串是否只由字母和数字组成
# result = text2.isalpha() #判断字符串是否只由字母组成
# print(result) #返回True

"""
字符串的分割和合并
"""
# 分割
# text = "to be or not to be, that is a question" #一段示范的字符串
# result = text.split() #split()函数，将字符串按照指定字符进行分割，返回一个列表
# result = text.split(",") #方法可以指定分隔符
# result = text.split(" ",2) #方法可以指定分隔符，并且指定最大分割次数
# print(result) #返回['to', 'be', 'or', 'not', 'to', 'be,', 'that', 'is', 'a', 'question']

# 合并
# text = ['to', 'be', 'or', 'not', 'to', 'be,', 'that', 'is', 'a', 'question'] #[]列表]
# text2 = ('to', 'be', 'or', 'not', 'to', 'be,', 'that', 'is', 'a', 'question') #()元组
# result = " ".join(text) #join()函数，将列表中的元素合并为一个字符串，返回一个字符串
# print(result)   #结果一样的
# result = " ".join(text2) #join()函数，将元组中的元素合并为一个字符串，返回一个字符串
# print(result)   #结果一样的

"""
翻译映射表
"""
#补充一个知识：字符串的替换
# alphabet = "abcdefghijklmnopqrstuvwxyz"
#
# alphabet = alphabet.replace("x", "天") #将选择的字符替换为其他字符,也可以替换多个字符，中文也行
# print(alphabet)

# alphabet = "abcdefghijklmnopqrstuvwxyz"

# table = {97: 20013, 98: 946}
# result = alphabet.translate(table)
# print(result)
#
# table = str.maketrans("abcxyz", "天地人月日是") #maketrans()函数，创建一个翻译映射表  注意两边的长度是要一致的
# result = alphabet.translate(table)
# print(result)

"""
去除首尾信息
"""
# alphabet = "abcdefghijklmnopqrstuvwxyz"
#
# result = alphabet.strip("abcxyz") #strip()函数，去除字符串首尾的指定字符,默认为空格
# result2 = alphabet.lstrip("")   #去除左边
# result3 = alphabet.rstrip("")   #去除右边
# print(result)

"""
大小写转换
"""

# text = "Hello World！" #一段示范的字符串
# result = text.capitalize() #capitalize()函数，第一个大写
# result = text.title() #title()函数，首字母大写
# result = text.upper() #upper()函数，全部大写
# result = text.lower() #lower()函数，全部小写
# result = text.swapcase() #swapcase()函数，大小写互换
# print(result)

"""
格式化字符串
"""
# 占位符
# age = 18
# name = "Razey"
# result = "我的名字是%s，我今年%d岁了" % (name, age) #%s-string表示字符串，%d-decimal表示十进制整数
# print(result)

# format()字符串
# name = "Razey"
# age = 18
# result = "我的名字是{}，我今年{}岁了".format(name, age) #{}-占位符{0}表示第一个参数{1}表示第二个参数
# print(result)

# f-string==format-string的进化版本
name = "Razey"
age = 18
weight = 65.5665
height = 175.4545
result = f"我的名字是{name}，我今年{age}岁了，我的体重是{weight:.2f}千克，我的身高是{height:.3f}厘米" #f-string，在字符串前面加上f，然后在字符串中直接使用变量
print(result)

